dconcators = [
    '',
    '_',
    '.',
    '~',
    '!',
    '@',
    '#',
    '$',
    '&',
    '?',
]

def part_concat(parts, index, result, result_list, concators=dconcators) :
    if index >= len(parts) - 1 :
        result_list.append(result + parts[index])
        return 
    for concator in concators :
        part_concat(parts, index + 1, result + parts[index] + concator, result_list, concators)

def concat(parts, concators=dconcators) :
    result_list = []
    part_concat(parts, 0, '', result_list, concators)
    return result_list

if __name__ == '__main__' :
    parts = ['', 'zsj', '0207', '']
    result_list = concat(parts)
    for result in result_list :
        print(result)
    print(result_list)
    print(len(result_list))